package offer.easy.math;

public class NoOperation {

    //加法的位运算实现
    //^异或，&与，两种计算
    //异或计算：表示非进位的部分
    //与计算：左移一位表示进位部分
    //两种计算后，得到两个数，并循环操作，直至与计算不再有进位部分
    public static int Add(int num1,int num2) {
        int result = 0;
        int ans = 1;
        while(ans!=0) {
            result = num1^num2;
            ans = (num1&num2) << 1;
            num1 = result;
            num2 = ans;
        }
        return result;
    }

    public static void main(String[] args) {
        System.out.println(Add(18,5));
    }
}
